# 定义编译器变量，这里使用 GCC
CC=arm-linux-gnueabihf-gcc

# 设置编译器标志变量，'-Wall' 用于显示所有警告 '-g' 添加调试信息
CFLAGS= -Wall -g -Wextra -std=c11

# 定义最终可执行文件的名称
TARGET=appwls

# 默认目标 all，依赖于 $(TARGET) 即可执行文件
all: $(TARGET)

# 规则用于构建最终的目标文件 $(TARGET)，它依赖于对象文件 appwlsmain.o
# 该规则会调用 $(CC) 执行链接
$(TARGET): appwlsmain.o
	$(CC) $(CFLAGS) -o $(TARGET) appwlsmain.o

# 规则告诉 make 如何生成 appwlsmain.o 从 appwlsmain.c 文件
# 使用 $(CC) 和 $(CFLAGS) 编译源代码
appwlsmain.o: appwlsmain.c
	$(CC) $(CFLAGS) -c appwlsmain.c

# clean 目标用于清除所有编译生成的文件，保持目录干净
# 'rm -f' 用于删除文件，'-f' 标志忽略不存在的文件，避免错误提示
clean:
	rm -f *.o $(TARGET)

# 声明伪目标，告诉 make 这些目标不对应文件
.PHONY: all clean
